Page({
    data: {
      consultantId: null,
      consultInfo: {}, 
      isLoading: false,
      errorMsg: '',
      greatList: [], // 擅长领域
      talkList: [], // 存储留言列表数据
      pageNum: 1,   // 分页页码
      pageSize: 10, // 每页条数
      total: 0,     // 总条数
      evaluateList: [], // 新增：用户评价列表
      newTalk: {    // 新增留言的临时对象
        talkContext: '', // 留言内容
        consultantId: null // 关联的咨询师ID
      } // 这里补充了缺失的右括号
    },
  
    onLoad(options) {
      console.log('接收到的参数:', options);
      const consultantId = options.id;
      if (!consultantId) {
        this.setData({ errorMsg: '参数缺失：未找到咨询师ID' });
        return;
      }
      this.setData({ consultantId });
      // 先获取咨询师基本信息，再获取擅长领域
      this.fetchConsultantDetail().then(() => {
        this.fetchGreatsByConsultantId(); // 依赖咨询师ID，所以在详情获取后调用
      });
      
      // 存储咨询师ID到data，并绑定到新增留言对象
      this.setData({ 
        consultantId,
        'newTalk.consultantId': consultantId 
      });
  
      // 链式调用接口（原有接口 + 新增留言接口）
      this.fetchConsultantDetail()
        .then(() => this.fetchGreatsByConsultantId())
        .then(() => this.fetchChargeStandard())
        .then(() => this.fetchTalkList())// 加载留言列表
        .then(() => this.fetchEvaluateList()); // 新增：加载评价列表
    },
  
    // 获取咨询师基本详情（返回Promise，方便后续链式调用）
    fetchConsultantDetail() {
      return new Promise((resolve) => {
        if (!this.data.consultantId) {
          this.setData({ errorMsg: '缺少咨询师ID，无法请求' });
          resolve();
          return;
        }
        this.setData({ isLoading: true });
        wx.showLoading({ title: '加载中...' });
        wx.request({
          url: 'http://localhost:8080/consultant/getById',
          data: { id: this.data.consultantId },
          method: 'GET',
          success: (res) => {
            console.log('咨询师基本信息:', res.data);
            if (res.statusCode === 200 && res.data) {
              this.setData({ consultInfo: res.data });
            } else {
              this.setData({ errorMsg: '未获取到咨询师详情' });
            }
          },
          fail: (err) => {
            this.setData({ errorMsg: '网络错误，无法获取咨询师信息' });
            console.error('请求失败:', err);
          },
          complete: () => {
            this.setData({ isLoading: false });
            wx.hideLoading();
            resolve(); // 无论成功失败都执行后续逻辑
          }
        });
      });
    },
  
    // 新增：调用中间表接口获取擅长领域
    fetchGreatsByConsultantId() {
      const { consultantId } = this.data;
      if (!consultantId) return;
      wx.showLoading({ title: '加载擅长领域...' });
      wx.request({
        url: `http://localhost:8080/api/consultant-great/consultant/${consultantId}`, // 后端中间表接口
        method: 'GET',
        success: (res) => {
          console.log('擅长领域原始数据:', res.data);
          if (res.statusCode === 200 && res.data.success) {
            // 后端返回的是List<ConsultantGreat>，需要提取greatName
            const consultantGreatList = res.data.data || [];
            // 转换为前端需要的格式：[{value: '领域1'}, {value: '领域2'}]
            const fieldTagList = consultantGreatList.flatMap(item => 
              item.greats.map(great => ({ value: great.greatName }))
            );
            // 更新到data中，供WXML渲染
            this.setData({
              'consultInfo.fieldTagList': fieldTagList, // 挂载到consultInfo下，保持与WXML一致
              greatList: consultantGreatList // 原始数据，可选
            });
          } else {
            this.setData({ errorMsg: '未获取到擅长领域' });
          }
        },
        fail: (err) => {
          this.setData({ errorMsg: '获取擅长领域失败' });
          console.error('擅长领域请求失败:', err);
        },
        complete: () => {
          wx.hideLoading();
        }
      });
    },
    
    fetchChargeStandard() {
        const { consultantId } = this.data; 
        if (!consultantId) return;
        wx.showLoading({ title: '加载收费标准...' });
        wx.request({
          url: `http://localhost:8080/chargeStandard/byConsultantId/${consultantId}`,
          method: 'GET',
          success: (res) => {
            console.log('收费标准数据:', res.data);
            if (res.statusCode === 200 && res.data.success) {
              this.setData({ chargeList: res.data.data });
            } else {
              this.setData({ errorMsg: '未获取到收费标准' });
            }
          },
          fail: (err) => {
            this.setData({ errorMsg: '获取收费标准失败' });
            console.error('收费标准请求失败:', err);
          },
          complete: () => {
            wx.hideLoading();
          }
        });
      },
      
      // 获取留言列表
fetchTalkList() {
    const { consultantId, pageNum, pageSize } = this.data;
    if (!consultantId) return;
    wx.showLoading({ title: '加载留言...' });
    wx.request({
      url: 'http://localhost:8080/consultant/talk/page',
      method: 'GET',
      data: {
        pageNum,
        pageSize,
        consultantId: consultantId
      },
      success: (res) => {
        console.log('留言列表数据:', res.data);
        // 修正1：后端用code=200表示成功，而非success字段
        if (res.statusCode === 200 && res.data.code === 200) {
          // 修正2：后端数组字段是list，而非records
          this.setData({
            talkList: res.data.data.list,  // 正确提取list数组
            total: res.data.data.total     // 总条数正确
          });
        } else {
          this.setData({ errorMsg: '未获取到留言' });
        }
      },
      fail: (err) => {
        this.setData({ errorMsg: '获取留言失败' });
        console.error('留言列表请求失败:', err);
      },
      complete: () => {
        wx.hideLoading();
      }
    });
  },
  fetchEvaluateList() {
    const { consultantId } = this.data;
    if (!consultantId) return;
    wx.showLoading({ title: '加载评价...' });
    wx.request({
      url: 'http://localhost:8080/consultantEvaluate/selectById',
      method: 'GET',
      data: { consultantId: consultantId }, // 传递咨询师ID
      success: (res) => {
        console.log('评价列表数据:', res.data);
        // 适配后端格式：code=200表示成功，数据在data中
        if (res.statusCode === 200 && res.data.code === 200) {
          this.setData({
            evaluateList: res.data.data // 评价数据列表
          });
        } else {
          console.log('未获取到评价数据');
        }
      },
      fail: (err) => {
        console.error('获取评价失败:', err);
      },
      complete: () => {
        wx.hideLoading();
      }
    });
  },
      // 修改onReady方法，确保数据为空时重新请求所有数据
      onReady() {
        if (Object.keys(this.data.consultInfo).length === 0 && this.data.consultantId) {
          this.fetchConsultantDetail()
            .then(() => this.fetchGreatsByConsultantId())
            .then(() => this.fetchChargeStandard())
            .then(() => this.fetchTalkList())
            .then(()=>this.fetchEvaluateList());
        }
      
}

  })

  
